package com.nb.java14.BlackBerry.ui.widgets;

import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.HorizontalFieldManager;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;

import java.util.Enumeration;
import java.util.Vector;

/**
 * Nota: No usar esta clase, usar {@link GridFieldManager}. NOTA: Esta clase NO esta lista para usar.
 *
 * @author Nahuel Barrios.
 * @version 1.0
 * @since 20/07/2010.
 */
public class TableField {

	/**
	 * Crea una nueva tabla en base a los parametros seteados.
	 *
	 * @param parent
	 * @param title  Un titulo para colocar arriba de la tabla.
	 * @param data   Este parametro debe ser un Vector de Vectores, donde cada elemento del vector data sera una columna de
	 *               la tabla y por lo tanto este elemento (tambien un Vector) posee el los N Fields que tendra la tabla.
	 */
	public TableField(MainScreen parent, String title, Vector data) {
		super();

		VerticalFieldManager mainVerticalManager = new VerticalFieldManager();
		HorizontalFieldManager mainHorizontalManager = new HorizontalFieldManager();

		if (data != null && !data.isEmpty()) {
			Enumeration elements = data.elements();
			while (elements.hasMoreElements()) {
				VerticalFieldManager aColumn = new VerticalFieldManager();

				Vector rows = (Vector) elements.nextElement();
				Enumeration rowsElements = rows.elements();
				while (rowsElements.hasMoreElements()) {
					Field aField = (Field) rowsElements.nextElement();
					aColumn.add(aField);
				}

				mainHorizontalManager.add(aColumn);
			}
		}

		if (title != null)
			mainVerticalManager.add(new LabelField(title));
		mainVerticalManager.add(mainHorizontalManager);

		if (parent != null)
			parent.add(mainVerticalManager);
	}

}
